A critical component of both private intranets and the publicly accessible internet is what is commonly referred to as a web server. A web server is typically a computer which is capable of receiving requests for information and returning data or performing specialized processing upon the receipt of a network request for such processing. Conventional network architectures envision servers as large scale computing platforms. For example, large commercial entities may include very large systems acting as web servers fielding requests for processing. Alternatively, these entities might employ large parallel server operations where a multitude of individual server computers all service requests for information and processing in parallel.
In today's network architectures, smaller users such as individuals or small businesses that require server systems will typically be forced to share part of the processing capability of one of these large scale systems. In many cases this sharing of resources does not provide adequate processing capability for the individual or small business user. Further, the sharing of a large processing system means that all parties utilizing that server processing capability are vulnerable to the failure of that system. These large processing platforms are also more difficult to customize if one small user needs specific features or components that other small users do not need. Further, as Internet and intranet traffic have grown, it has become apparent that even the largest processing platforms reach a limit to their processing capability especially in light of the increased traffic in large multimedia content and the necessity for real time processing of transactions.
Another difficulty in providing server technology to individual or small business users is associated with the difficulties in maintaining provisioning and administrating the server technology. Conventional server systems are typically very complex to administer. Software development efforts have not focused on providing simple user interfaces because the typical personnel that are tasked with maintaining servers are typically very sophisticated network technicians.
Large scale servers that are shared by multiple small users present difficulties in monitoring and metering traffic for individual users. For example, if a server provider desired to bill a user of a large scale system according to the processing time or the transaction count that occurred relative to that particular user, it is very difficult to arrive at an accurate assessment of that activity when the server hardware is shared by that user and many other users.
In the past, it has been difficult to provide server capability close to the end user. This is in large part because the typical larger server architectures require special environmental conditions and special hardware environments to supply power and large bandwidth communication links. The environment of a telephone company's central office is typically very close to the end user, however, the space power and environmental constraints within these facilities make it completely impractical to co-locate large server platforms within these facilities.